öncelikle sen kim köpeksin diyebilirsin ama benim teorime göre web sitesi diye bir şey kalmayacak yakın gelecekte.
nereden başlamalıyım sorusuna temeli parçalayarak cevap vereyim.
websitesi dediğin şey iki parçadan oluşuyor, front ve back.
front dediğimiz son kullanıcının gördüğü kısım, websitesi. ekşi duyuru'dan örnek vermek gerekirse. duyuruların listelenmesi, sağda son cevaplananların olması, son cevaplananlarda bir şeye tıklayınca başka bir sayfaya gitmesi, ikonlar, açılıp kapanma animasyonları, renkler, şekiller, görseller, borderlar, yazı stilleri.
tüm bunların özünde iki üç şey var,
html
javascript
css
hangi kütüphane (jquery, vue.js, typescript, less ....) kullanırsan kullan websitesi dediğin şeyin özü yukarıdaki üçlüdür, kullandığın kütüphaneler sadece işi daha kolaylaştırır ama işin sonunda yine en temel sonucu verir, html, javascript, css.
__________
bir de back kısmı var. burada seçebileceğin bir sürü dil var. c#, php, ruby, python, java, node.js, swift, rust.
back kısmında ise veritabanından veri sorgulama, çeşitli işlemlerden geçirme ve mantıklı veriyi front'a gönderme işi yapılıyor. Route kontrolü de yine buraya ait,
eksiduyuru.com/herbirsey/ sayfasına gidince hangi kodlar çalışacak, hangi html son kullanıcıya gösterilecek bunun yönlendirmesini de yine back end tarafında yapıyorsun.
toparlayacak olursak eğer full stack web developer olacağım diyorsan en başta öğrenmen gereken temel şeyler.
HTML
CSS
javascript
Herhangi bir back-end dili
bunların özünü öğrenmekle başlayabilirsin, herhangi bir kütüphane kullanmadan sadece bu üçünü kullanarak neler yapabildiğini görmelisin.
html özel bir dil sayılmaz, haliyle bir kütüphanesi vs. yok. yapabileceğin şeyler standart ve belli, öğrenmesi kolay. bir websitesinin kaba inşaatı gibi bir şey aslında, neyin ne işe yaradığını bilmende fayda var.
link verirken hangi tag'ı kullanılıyor, paragrafta hangi tag kullanılıyor. meta tagları nelerdir, ne işe yarar vs.
css dediğimiz ise HTML'i güzelleştiren renklendiren, işin peyzajı, boyası, iç mimarisi. bunda işini kolaylaştıracak kütüphaneler bulabilirsin, özellikle sürekli tekrar tekrar aynı şeyleri yazmamanı sağlayan less var en bilindik.
javascript artık kullanım olarak çok değişik yerlere evrildi ama temelinde kullanıcı arayüzünde yazdığın yani front-end bir programlama dili.
temelinde kullanıcı şuraya tıklayınca şunu yap, şunun üzerine gelince bunu yap gibi komutlarla arayüzü daha kullanışlı hale getirmeni sağlıyor diyebiliriz. ama tabii bunlarla sınırlı değil. en çok da bununla ilgili kütüphane bulacaksındır.
jQuery en bilindik ve muhtemelen hakkında en çok kaynak kod bulabileceğin fakat artık kullanımı da yavaş yavaş azalmaya başlayan bir kütüphane. komplike animasyonları, event yakalamalarını vs. çok kolay bir şekilde yapmanı sağlayan bir kütüphane.
hatta o kadar güzeldir ki çoğu kişi jquery'i bir dil sanar. javascript'i hiç bilmeden kullananlarını da çok gördüm.
özellikle mvvm ve single page application muhabbetiyle de bir çok fremework ortaya çıktı.
angular, vuejs, reactjs, typescript incelenebilecek kütüphaneler.
ama bu kütüphaneleri en sona bırakmakta fayda var, öncelikle temelden html, css ve javascript öğrenmelisin. daha sonra zaten bir şekilde karşına bu kütüphaneler gelecektir.
Tüm bunları öğrendikten sonra back-end tarafına geçebilirsin. yine kendine uygun bir dil ve framework seçmen gerekiyor. alternatif çok, en çok kullanılan ve en çok kaynak bulabileceğin dil muhtemelen PHP, wordpress mesela php tabanlı bir dil. bir de yine javascript'te olduğu gibi temel php var ve çeşitli frameworkler var,
laravel, smyfony, codeigniter, cakephp, yii, zend gibi.
yani php seçtiysen eğer php syntax'ını öğrendikten sonra bir framework seçip onun yapısını öğrenmelisin.
php'den sonra muhtemelen ikinci dil olarak da c# (asp.net, asp.net mvc, asp.net core mvc) geliyor, yapı ve syntax olarak php'den çok farklı bir dil.
öğrenme tekniği olarak önereceğim şey de şu olur, kendinize basit bir proje belirleyin. kopya bir proje de olur mesela ekşi duyuru'yu yeniden yapmak gibi. oturup yazmaya başlayın. yazarken karşınıza çıkan zorluklar zaten sizi araştırmaya ve yeni şeyler öğrenmeye yönlendirecektir. ben öğrendiğim çoğu şeyi oturup çalışarak öğrenmedim, karşıma çıkan problemleri çözerek öğrendim.
çünkü mesela css, html syntax'ını öğrenmek/ezberlemek çok kolay ama pratikte karşına öyle bir tasarım gelir ki ben bunu nasıl koda dökerim diye uğraşır durursun, asıl öğrenme o zaman başlar.
0